package org.example.functionInterface;

import java.util.function.Consumer;

//接收一个字符串,先按照大写打印,再按照小写打印
/*    toUpperCase(): 把字符串变成大写    toLowerCase(): 把字符串变成小写 */
public class Demo05Consumer {
    //如果一个方法的参数和返回值全都是Consumer类型，那么就可以实现效果：
    // 消费一个数据的时候，首先做一个操作，然后再做一个操作，实现组合。
    // 而这个方法就是Consumer接口中的default方法andThen。下面是JDK的源代码：
    public static void main(String[] args) {
        String s = "Hello";
        //lambda标准格式
        fun(s, (String str) -> {
            System.out.println(s.toUpperCase());
        }, (String str) -> {
            System.out.println(s.toLowerCase());
        });
    }

    /*        定义方法,参数是Consumer接口        因为要消费两次,所以需要两个Consumer接口作为参数     */
    public static void fun(String s, Consumer<String> con1, Consumer<String> con2) {
        //先消费一次
        con1.accept(s);
        //再消费一次
        con2.accept(s);
    }
}